<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="../../templates/principal.xhtml">

    <ui:define name="content" id="content">
        <p:panel id="panel" header="Bem Vindo ao Cadastro de Categoria" style="">
            <p:dataTable id="tabCategoria" widgetVar="wtabCategoria" var="categoria" value="#{categoriaView.categoriaLazy}" 
                         lazy="true" paginator="true" rows="10" paginatorPosition="top"
                         emptyMessage="Nenhum Registro Retornado ..." filterEvent="enter">

                <p:column style="width:2%">
                    <p:rowToggler />
                </p:column>

                <p:column headerText="Descrição" sortBy="#{categoria.dscCategoria}" filterBy="#{categoria.dscCategoria}" style="width: 100%;">
                    <h:outputText value="#{categoria.dscCategoria}" />
                </p:column>

                <p:rowExpansion>
                    <p:dataTable id="tabGrupo" widgetVar="wtabGrupo" var="grupo" value="#{categoria.categoriaGrupoList}" 
                                 emptyMessage="Nenhum Registro Retornado ...">

                        <f:facet name="header">
                            <h:outputText value="Grupos da Categoria" />
                        </f:facet>

                        <p:column style="width: 100%;">
                            <h:outputText value="#{grupo.dscGrupo}" />
                        </p:column>
                    </p:dataTable>

                </p:rowExpansion>

                <p:column style="width: 100px;">
                    <h:panelGrid columns="2">
                        <p:commandButton id="selectButtonCategoria" update=":frmPrincipal:displayGrupo :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(2,'consultar')}" 
                                         icon="ui-icon-search" title="Visualizar // Alterar Categoria" oncomplete="PF('categoriaDialog').show();">
                            <f:setPropertyActionListener value="#{categoria}" target="#{categoriaView.selectedCategoria}" />
                            <f:setPropertyActionListener value="#{false}" target="#{menuView.salvar}" />
                        </p:commandButton>

                        <p:commandButton id="excluirButtonCategoria" update=":frmPrincipal:panel :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(2,'excluir')}" 
                                         icon="ui-icon-trash" title="Excluir Categoria" oncomplete="PF('confirmation').show();">
                            <f:setPropertyActionListener value="#{categoria}" target="#{categoriaView.selectedCategoria}" />
                        </p:commandButton>
                    </h:panelGrid>
                </p:column>

                <f:facet name="footer">
                    <div style="text-align: left;">
                        <p:commandButton id="incluirButtonCategoria" actionListener="#{categoriaView.preparaInserir}" rendered="#{menuView.verificaAcesso(2,'incluir')}" 
                                         update=":frmPrincipal:panel :frmPrincipal:messages" value="Novo Categoria"
                                         icon="ui-icon-pencil" title="Cadastrar Novo Ramo de Categoria" oncomplete="PF('categoriaDialog').show();" />
                    </div>
                </f:facet>
            </p:dataTable>

            <p:dialog id="Dialogcategoria" header="Detalhes Categoria" widgetVar="categoriaDialog" resizable="false" showEffect="slide" hideEffect="slide">
                <p:focus context="displayGrupo" />
                <p:ajax event="close" update=":frmPrincipal:panel :frmPrincipal:messages" listener="#{menuView.fechaDialog}" />

                <p:panelGrid id="displayGrupo" style="width: 100%;">
                    <p:row>
                        <p:column style="width: 50px;">
                            <h:outputText value="Descrição:" />
                        </p:column>

                        <p:column style="width: 800px;">
                            <p:inputText id="inDscMix" value="#{categoriaView.selectedCategoria.dscCategoria}" maxlength="200" style="width: 99%; font-weight:bold" />
                        </p:column>
                    </p:row>

                    <p:row>
                        <p:column colspan="2" style="width: 100%;">
                            <p:dataTable id="multiGrupos" var="grupo" value="#{categoriaView.listCategoriaGrupo}" paginator="true" rows="10"
                                         selection="#{categoriaView.selectedCategoriaGrupos}" rowKey="#{grupo.idGrupo}">

                                <f:facet name="header">
                                    <h:outputText value="Selecione os Grupos da Categoria" />
                                </f:facet>

                                <p:column selectionMode="multiple" style="width:4%" />

                                <p:column headerText="Descrição" style="width:100%">
                                    <h:outputText value="#{grupo.dscGrupo}" />
                                </p:column>
                            </p:dataTable>
                        </p:column>
                    </p:row>

                    <f:facet name="footer">
                        <p:row>
                            <p:column colspan="2" style="width: 100%;">
                                <p:commandButton value="Salvar" update=":frmPrincipal:panel :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(2,'incluir')}"
                                                 icon="ui-icon-disk" actionListener="#{categoriaView.inserir}" oncomplete="PF('categoriaDialog').hide();" />
                                <p:commandButton value="Salvar" update=":frmPrincipal:panel :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(2,'alterar')}"
                                                 icon="ui-icon-disk" actionListener="#{categoriaView.alterar}" oncomplete="PF('categoriaDialog').hide();" />
                            </p:column>
                        </p:row>
                    </f:facet>
                </p:panelGrid>
            </p:dialog>

            <p:dialog header="Confirma a Exclusão desse Categoria?" widgetVar="confirmation">
                <p:commandButton value="Sim" update=":frmPrincipal:panel :frmPrincipal:messages" oncomplete="PF('confirmation').hide();"
                                 styleClass="ui-confirmdialog-yes" icon="ui-icon-check" actionListener="#{categoriaView.excluir}" />
                <p:commandButton value="Não" onclick="PF('confirmation').hide();" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
            </p:dialog>
        </p:panel>

    </ui:define>
</ui:composition>